package com.digitalart.futbol.hibernate.daoImpl;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.digitalart.futbol.hibernate.dao.DuenioDao;
import com.digitalart.futbol.hibernate.ejb.Duenio;

@Repository
public class DuenioDaoImpl implements DuenioDao {

	@Autowired(required=true)
	private SessionFactory sessionFactory;
	
	@Transactional
	public Duenio findById(int id) {
		String queryString= "from Duenio duenio where duenio.id_duenio=?";

		Duenio result = (Duenio) this.sessionFactory.getCurrentSession().createQuery(queryString).setParameter(0, id).uniqueResult();	

		return result;
	}

	@Transactional
	public Duenio persistOnMerge(Duenio objDuenio) {
		Duenio result = (Duenio)this.sessionFactory.getCurrentSession().merge(objDuenio);

		return result;
	}

	@Transactional
	public Duenio getByCed(String cedula) {
		String queryString= "from Usuario usuario where usuario.cedula=?";

		Duenio result = (Duenio) this.sessionFactory.getCurrentSession().createQuery(queryString).setParameter(0, cedula).uniqueResult();	

		return result;
	}

	@Transactional
	public Duenio retriveDuenioByCorreo(String correo) {
		String queryString= "from Duenio duenio where duenio.cedula=?";
		
		Duenio result = (Duenio) this.sessionFactory.getCurrentSession().createQuery(queryString).setParameter(0, correo).uniqueResult();	

		return result;
	}

}
